package br.com.studyLife.dao;

import java.util.ArrayList;
import java.util.List;

import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;

import br.com.caelum.vraptor.ioc.Component;
import br.com.studyLife.modelo.Relacionamento;
import br.com.studyLife.modelo.Usuario;

@Component
public class RelacionamentoDao {

	private final Session session;
	
	public RelacionamentoDao(Session session) {
		this.session = session;
	}
	
	public void adicionar(Relacionamento relacionamento) {
		this.session.save(relacionamento);
	}

	@SuppressWarnings("unchecked")
	public List<Usuario> amigosDe(Usuario user) {
		List<Relacionamento> queAdicionei = session.createCriteria(Relacionamento.class).add(Restrictions.eq("usuario1", user)).list();
		List<Relacionamento> queAdicionaram = session.createCriteria(Relacionamento.class).add(Restrictions.eq("usuario2", user)).list();
	
		List<Usuario> todos = new ArrayList<Usuario>();
		for (Relacionamento rel : queAdicionei) { todos.add(rel.getUsuario2()); }
		for (Relacionamento rel : queAdicionaram) { todos.add(rel.getUsuario1()); }
		
		return todos;
	}
	
}
